// 全局配置对象
var config = {};
// 面包屑
config.bread = {
    // 属性配置集合
    attr: {
        className: '',
        style: {}
    },
    // 元素集合
    items: [
        {
            tag: 'a',
            text: '后台管理'
        },
        {
            tag: 'a',
            text: '商品管理'
        }
        ,
        {
            tag: 'a',
            text: '商品增加'
        }
    ]
};
// 搜索表单
config.search = {
    // 属性配置集合
    attr: {
        // 超过行数折叠
        foldRows: 3,
        // 折叠状态
        foldStatus: true,
        className: '',
        style: {}
    },
    form: {
        // 必填。属性集合
        attr: {
            // 选填。自定义样式名称
            className: '',
            // 选填。自定义行内样式
            style: {},
            // 选填。表单元素布局列数，支持 1 2 3 4 5 6，默认4列。此处自带响应式缩放列
            columns: 4,
            // 选填。序号
            id: 'searchForm',
            // 必填。表单名称（分页表格组件设置pagetable.attr.formName与此值一致）
            name: 'searchForm',
            // 必填。表单提交路径
            action: '/product/doModifyProduct',
            // 选填。表单提交方式，支持 POST / GET，默认GET
            method: 'post',
            // 选填。页面加载完成后提交表单，一般用于页面展示后显示第一页数据，默认false
            load: false,
            // 选填。是否在提交数据中不增加params参数，true为不增加，false或不设置为增加
            withoutParams: false
        },
        // 选填。表单提交前处理函数，一般用于增加自定义数据校验。返回true才会进行表单提交，不返回或返回false不提交表单
        onSubmit: function (date) {
            console.log(date);
            if(!/^[0-9]*$/.test(date.productPrice)){
                lv.alert("商品价格只能输入数字")
                return false;
            }
            if(!/^[0-9]*$/.test(date.productStock)){
                lv.alert("商品库存只能输入数字")
                return false;
            }
            return true;
        },
        // 选填。表单提交完成后回调函数，一般用于数据处理，设置分页等。注意该函数处理完数据后需将处理数据返回
        onSuccess: function (result) {
            console.log(result);
            lv.alert(result.msg)
            if(result.code == 1 ){
                window.opener.updateDate();
            }
            return result;
        },
        // 选填。请求失败处理函数
        onError: function (err) {
            console.error(err);
        },
        // 选填。自定义处理框架校验错误消息，如果没配置，则使用框架默认alert弹出错误消息
        onValidate: function(errMsg) {
            alert(errMsg);
        },
        // 选填。（常用与详情页）
        // 注意此处与attr.action区别：action是提交数据到服务器，这里一般用于读取数据渲染到表单
        // 此处配置项与常用ajax请求配置一样，比如jquery
        ajax: {
            // 必填。数据获取地址
            url: '',
            // 选填。请求方法 GET / POST，默认GET
            method: 'POST',
            // 选填。请求发送参数
            data: {},
            // 选填。是否支持缓存，默认false
            cache: false,
            // 选填。是否页面渲染完成后即可加载，false不加载， true或不配置均会加载
            load: false,
            // 选填。是否在提交数据中不增加params参数，true为不增加，false或不设置为增加
            withoutParams: false,
            // 选填。成功回调函数，这里可以做一下数据处理工作。如有设置，请必须返回处理后的值
            success: function(data) {
                return data;
            },
            // 选填。失败回调函数，这里可以做一下失败提示
            error: function(err) {
                // dosomething
            }
        },
        // 表单元素
        items: [

            {
                tag: 'input',
                label: '商品id',
                attr: {
                    id: 'productId',
                    name: 'productId',
                    readonly: true
                }
            },
            {

                tag: 'input',
                label: '商品名称',
                attr: {
                    id: 'productName',
                    name: 'productName'
                }
            },
            {
                tag: 'input',
                label: '商品价格',
                attr: {
                    id: 'productPrice',
                    name: 'productPrice'
                }
            }
            ,
            {
                tag: 'input',
                label: '商品库存',
                attr: {
                    id: 'productStock',
                    name: 'productStock'
                }
            }
            ,
            {
                tag: 'input',
                label: '商品描述',
                attr: {
                    id: 'productDescription',
                    name: 'productDescription'
                }
            }

            ,
            {
                tag: 'select',
                label: '商品状态',
                attr: {
                    className: '',
                    style: {},
                    id:'categoryType',
                    name: 'categoryType',
                    // 选填。适用于ajax读取数据与默认配置不一致。默认 text
                    fieldText: 'categoryName',
                    // 选填。适用于ajax读取数据与默认配置不一致。默认 value
                    fieldValue: 'categoryType'
                }
                // ,
                // options: [
                //     {
                //         text: '全部',
                //         value: '',
                //     }
                // ]
            }
            // ,
            // {
            //     tag: 'select',
            //     label: '类目编号',
            //     // 选填。一般用于label文字超长，需要自动换行使用
            //     labelBreak: true,
            //     attr: {
            //         className: '',
            //         style: {},
            //         id: 'categoryType',
            //         name: 'categoryType',
            //         // 选填。适用于ajax读取数据与默认配置不一致。默认 text
            //         fieldText: 'categoryName',
            //         // 选填。适用于ajax读取数据与默认配置不一致。默认 value
            //         fieldValue: 'categoryType'
            //     },
            //     options: [
            //         {
            //             text: '全部',
            //             value: '',
            //             selected: true
            //         }
            //     ],
            //     // 选填。异步获取下拉框选项数据
            //     ajax: {
            //         // 必填。数据获取地址url /category/findCategoryAll
            //         url: '',
            //         // 选填。请求方法，默认GET
            //         method: 'GET',
            //         // 选填。请求携带参数
            //         data: {},
            //         // 选填。成功回调函数，一般用户数据预处理，请返回选项最终渲染数组类型数据
            //         success: function(result) {
            //             // var array = window.opener.getSelectDate();
            //             // var categoryType = array.categoryType;
            //             // for(i=0;i<result.length;i++){
            //             //      if(result[i].categoryType == categoryType){
            //             //          this.selected = true
            //             //          continue;
            //             //      }
            //             // }
            //             return result;
            //         },
            //         // 选填。失败回调函数
            //         error: function(err) {
            //             console.log(err);
            //         }
            //     },
            //     // change事件自定义处理函数，请返回true标识当前选中操作合法，返回false或者不返回则不选中当前选择
            //     // target: 当前点击元素
            //     // rowData：用于ajax异步返回数据，为当前选中对象完整数据
            //     // tableName: 所属动态表格attr.name
            //     // tableRowIndex: 所属动态表格行号
            //     onChange: function (target, rowData, tableName, tableRowIndex) {
            //         // target是当前操作的对象
            //         // 通过target.value可以直接拿到所选值
            //         console.log(target.value);
            //         // 如果配置了onChange事件处理函数，必须返回true才能设置值
            //         return true;
            //     }
            // }
        ],
        // 表单按钮组
        btngroup: {
            attr: {
                // 自定义样式，框架提供对齐方式样式名 center / left / right，默认：left
                className: 'center',
                style: {}
            },
            items: [
                {
                    tag: 'button',
                    text: '提交',
                    attr: {
                        // 配置为submit是标识当前按钮可以提交表单
                        // type: 'submit'
                    },
                    onClick: function (e) {
                        ajax(config.search.form.data)
                    }
                },
                {
                    tag: 'button',
                    text: '关闭',
                    attr: {
                        // 配置为submit是标识当前按钮可以提交表单

                    },
                    onClick: function (e) {
                        window.close();
                    }
                }
            ]
        }
    }
};

function ajax(data) {
    lv.formSubmit('searchForm');
}

// 启动框架
window.lv.start({
    // 选填。配置项填充div的id值，默认 lv-view
    viewId: 'lv-view',
    // 必填。配置项对象
    config: config
});
//促使化加载数据
(function () {
    var array = window.opener.getSelectDate();
    lv.ajax({
        // 必填。请求路径
        url: '/category/findCategoryAll',
        // 选填。请求方法：GET / POST，默认GET
        method: 'POST',
        // 选填。是否缓存请求：true / false ，默认false
        cache: false,
        // 选填。提交数据
        data: {},
        // 选填。是否异步：true / false，默认 true
        async: true,
        // 选填。数据交互格式：xml / html / script / script / jsonp / text，默认json
        dataType: 'json',
        // 选填。成功回调函数
        success: function(data, textStatus, jqXHR) {
            console.log(data);
            for(i=1;i<data.length;i++){
                $("#categoryType").append("<option value="+data[i].categoryType+">"+data[i].categoryName+"</option>");
            }
        },
        // 选填。失败回调函数
        error: function(xhr, textStatus, errorThrown) {
            console.log(xhr);
        },
        // 选填。完成回调函数，参考jquery
        complete: function(xhr, textStatus) {
            lv.formUpdate({
                // 必填。修改表单名称，与form.attr.name一致
                formName: 'searchForm',
                // 必填。修改表单字段数据，data中key与表单元素中attr.name值一致
                data: array
            });
        }
    });



    // $("#categoryId").val(array.categoryId);
    // $("#categoryName").val(array.categoryName);
    // $("#categoryType").val(array.categoryType);
})();

